#ifndef _NEPTUNER_INBLOCK_H_
#define _NEPTUNER_INBLOCK_H_

#include "scope.h"
#include<string>

class InBlock :
    public Scope
{
public:
	enum BlockType;
	BlockType		m_eBlockType;

public:
    InBlock(Scope* pParentScope);
    Scope* parse(Token& inToken, bool &bIsEndOfScope);

	bool canDefineFunction();
	bool canDefineVariable();
	bool canDefineType();

	bool isFunction();
    virtual ~InBlock(void);

private:
	void classify();

public:
	enum BlockType
	{
		eBlockGeneric,
		eBlockFunction,
		eBlockKeyword,
		eBlockNamespace,
		eBlockClass
	};
};

#endif

